Data compression has been widely used in digital signal systems, such as communication and computing systems. For example, to save storage space or transmission time, it is common to compress computer data into TAR or ZIP file formats. Over the years, a family of compression schemes have been developed based on the compression techniques originally published by Abraham Lempel and Jacob Ziv in 1977 and 1978, which have been referred to as LZ77 and LZ78. Some of the LZ family compression schemes favor compression ratio over speed while some others sacrifice speed for a higher compression ratio. These various LZ compression techniques, however, are developed for a general-purpose computing system that normally uses a general purpose Central Processing Unit (CPU) to perform the data compression or decompression operations. Therefore, there is a need for a compression technique that is more hardware friendly, for example, suitable for a Field Programmable Gate Array (FPGA) or an application specific integrated circuit (ASIC).